#!/bin/sh

# This script is modelled after cmdtest:
#   it takes all *.scripts and executes them and saves the stdout/err
#   This output is compared against *.stdout/stderr.
#   If no difference is found, the test is assumed as PASS (otherwise FAIL)
#
total_ret=0
testsrc="${srcdir:-.}"
for script in `ls -1 ${testsrc}/*.script | sort` ; do
	base=`basename $script .script`
	echo "Testing $base"
        $script > out.stdout 2> out.stderr

	# check stdout for correctness
	if [ -f ${testsrc}/$base.stdout ]; then
		diff out.stdout ${testsrc}/$base.stdout
		ret_stdout=$?
	else
		ret_stdout=0
	fi

	# check stderr for correctness
	if [ -f ${testsrc}/$base.stderr ]; then
		diff out.stderr ${testsrc}/$base.stderr
		ret_stderr=$?
	else
		if [ -s out.stderr ] ; then
			diff out.stderr /dev/null
			ret_stderr=1
		else
			ret_stderr=0
		fi
	fi

	if [ $ret_stdout -eq 0 -a $ret_stderr -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
		total_ret=1
	fi
done

exit $total_ret
